<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
</body>
</html>

<script>
  // 比较运算符(关系运算符)
  // == === != !== >= <= > <

  // 1. ==(相等)
  // 两个等号比较的值，但是不比较类型(类型转换)
  // 比较符号两边的值是否相等，不管数据类型
  // 用==做比较的时候，是会有转换，转换的核心是数字
  // 字符串和布尔值会转成数字
  // 比较运算符只要一边出现NaN，结果一定是false
  // null只和null以及undefined比较的时候是true，其他情况都是false

  // console.log(5 == 5); // true
  // console.log(5 == "5");  // true
  // console.log(1 == true);  // true
  // console.log(0 == false);  // true
  // console.log(null == undefined);  // true
  // console.log(NaN == NaN); // false

  




  // 2. ===(全等)
  // 不仅要类型相同，还需要值相同(类型不会做转换)
  // console.log(5 === 5); // true
  // console.log(5 === "5"); // false
  // console.log(1 === true); // false
  // console.log(0 === false);  // false
  // console.log(null === undefined);  // false
  // console.log(NaN === NaN); // false






  // 3. != 
  // 不等于
  // 就相当于是==的结果的取反
  // console.log(null != undefined);





  // 4. !==
  // 不全等
  // 就相当于是===的结果的取反
  // console.log(5 !== "5"); // true
  // console.log(5 !== 5); // false





  // 5. > < >= <=
  // console.log(5 > 3);
  // console.log(5 >= 3);
  // console.log(5 >= true);


  // 如果出现比较运算符的两边都是字符串的情况下，是按照unicode编码(万国码)进行比较
  // console.log("5" > "3"); // true
  // console.log("15" > "3"); // false
  // console.log("51" > "3"); // true
  // console.log("Zhangsan" > "lisi"); // false
  // console.log("zhangsan" > "lisi"); // true
  // a-z 97-122
  // A-Z 65-90
  // 0-9 48-57

  






</script>